// Generated from Indicator.g4 by ANTLR 4.13.2
package org.groupg.practice.antlr;
import org.antlr.v4.runtime.tree.ParseTreeVisitor;

/**
 * This interface defines a complete generic visitor for a parse tree produced
 * by {@link IndicatorParser}.
 *
 * @param <T> The return type of the visit operation. Use {@link Void} for
 * operations with no return type.
 */
public interface IndicatorVisitor<T> extends ParseTreeVisitor<T> {
	/**
	 * Visit a parse tree produced by {@link IndicatorParser#prog}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitProg(IndicatorParser.ProgContext ctx);
	/**
	 * Visit a parse tree produced by {@link IndicatorParser#indicatorRule}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitIndicatorRule(IndicatorParser.IndicatorRuleContext ctx);
	/**
	 * Visit a parse tree produced by {@link IndicatorParser#calculationRule}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitCalculationRule(IndicatorParser.CalculationRuleContext ctx);
	/**
	 * Visit a parse tree produced by the {@code VarRef}
	 * labeled alternative in {@link IndicatorParser#expr}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitVarRef(IndicatorParser.VarRefContext ctx);
	/**
	 * Visit a parse tree produced by the {@code MulDivExpr}
	 * labeled alternative in {@link IndicatorParser#expr}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitMulDivExpr(IndicatorParser.MulDivExprContext ctx);
	/**
	 * Visit a parse tree produced by the {@code Number}
	 * labeled alternative in {@link IndicatorParser#expr}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitNumber(IndicatorParser.NumberContext ctx);
	/**
	 * Visit a parse tree produced by the {@code PercentExpr}
	 * labeled alternative in {@link IndicatorParser#expr}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitPercentExpr(IndicatorParser.PercentExprContext ctx);
	/**
	 * Visit a parse tree produced by the {@code ParenExpr}
	 * labeled alternative in {@link IndicatorParser#expr}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitParenExpr(IndicatorParser.ParenExprContext ctx);
	/**
	 * Visit a parse tree produced by the {@code AddSubExpr}
	 * labeled alternative in {@link IndicatorParser#expr}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitAddSubExpr(IndicatorParser.AddSubExprContext ctx);
	/**
	 * Visit a parse tree produced by the {@code ClosedClosedInterval}
	 * labeled alternative in {@link IndicatorParser#interval}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitClosedClosedInterval(IndicatorParser.ClosedClosedIntervalContext ctx);
	/**
	 * Visit a parse tree produced by the {@code ClosedOpenInterval}
	 * labeled alternative in {@link IndicatorParser#interval}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitClosedOpenInterval(IndicatorParser.ClosedOpenIntervalContext ctx);
	/**
	 * Visit a parse tree produced by the {@code OpenClosedInterval}
	 * labeled alternative in {@link IndicatorParser#interval}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitOpenClosedInterval(IndicatorParser.OpenClosedIntervalContext ctx);
	/**
	 * Visit a parse tree produced by the {@code OpenOpenInterval}
	 * labeled alternative in {@link IndicatorParser#interval}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitOpenOpenInterval(IndicatorParser.OpenOpenIntervalContext ctx);
	/**
	 * Visit a parse tree produced by the {@code FullRangeInterval}
	 * labeled alternative in {@link IndicatorParser#interval}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitFullRangeInterval(IndicatorParser.FullRangeIntervalContext ctx);
	/**
	 * Visit a parse tree produced by the {@code NumberBound}
	 * labeled alternative in {@link IndicatorParser#rangePart}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitNumberBound(IndicatorParser.NumberBoundContext ctx);
	/**
	 * Visit a parse tree produced by the {@code NegInfinity}
	 * labeled alternative in {@link IndicatorParser#rangePart}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitNegInfinity(IndicatorParser.NegInfinityContext ctx);
	/**
	 * Visit a parse tree produced by the {@code PosInfinity}
	 * labeled alternative in {@link IndicatorParser#rangePart}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitPosInfinity(IndicatorParser.PosInfinityContext ctx);
}